/**
 * 用户登录接口 
 * */
const express = require("express")
// 创建路由
const router = express.Router()
// 引入数据库连接池
const pool = require("../../db/db.js")
// 引入ResponseData
const Response = require("../../utils/ResponseData.js")
// 引入jwt相关方法
const { generateToken } = require("../../auth/jwt.js")

/**
 * 用户登录接口
 * 请求url:"http://localhost:3000/userLogin"
 * 请求方式:post
 * 请求参数:req.body
 * @param req:接收前端请求来的数据
 * @param res:响数据到前端
 */
router.post("/userLogin", (req, res) => {
    console.log("进入到了userLogin", req.body);
    // 获取前端请求回来的数据
    const { u_email, u_pwd } = req.body
    console.log(u_email, u_pwd);
    // 编写sql语句,?是占位符,后用变量替换
    const sql = "select * from user where u_email = ? and u_pwd = ?"
    // 执行sql语句
    // 参数1:sql语句,参数2:参数列表,元素顺序必须和sql语句中的?完全一致,参数3:回调函数,处理返回值
    pool.query(sql, [u_email, u_pwd], (err, data) => {
        if (err) {
            console.log(err);
            return
        }
        console.log(data);
        if (data.length == 0) {
            res.send(Response.error("登陆失败,用户信息不存在"))
        } else {
            // 生成token
            const token = generateToken(data[0]?.u_id, 2)
            // 后端给前端响应信息,用response.send()
            res.send(Response.success({
                id: data[0]?.u_id,
                name: data[0]?.u_name,
                token: "Bearer " + token
            }, "登陆成功"))
        }
    })
})

module.exports = router